package cn.rkylin.oms.system.storage.dao;

import java.util.List;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import cn.rkylin.core.IDataBaseFactory;
import cn.rkylin.oms.system.storage.domain.Stor;
import cn.rkylin.oms.system.storage.vo.StorVO;

/**
 * <p>
 * Module : 仓库管理
 * </p>
 * <p>
 * Description: 仓库业务对象
 * </p>
 * <p>
 * Remark :
 * </p>
 */
@Repository(value = "storDAO")
public class StorDAOImpl implements IStorDAO {
	
	/**
	 * 自定义baseDao 增删改查方法
	 */
	@Autowired
	protected IDataBaseFactory dao;
	
	/**
	 * 自定义baseDao 增删改查方法
	 */
	@Autowired
	private IDataBaseFactory dataBaseFactory;

	/**
	 * 方法简要描述信息.
	 * <p>
	 * 描述: 获取仓库
	 * </p>
	 * <p>
	 * 备注: 详见顺序图
	 * </p>
	 * 
	 */
	@SuppressWarnings("rawtypes")
	@Override
	public List<StorVO> getStorByCondition(Stor storVO, int page, int rows) throws Exception {
		// List<WF_ORG_ROLE> resultList = new ArrayList();
		StorVO vo = new StorVO();
		BeanUtils.copyProperties(storVO, vo);
		return dataBaseFactory.findPage(page, rows, "getStorByCondition", vo).getList();
	}
	
	/**
	 * 方法简要描述信息.
	 * <p>
	 * 描述: 删除仓库
	 * </p>
	 * <p>
	 * 备注: 详见顺序图
	 * </p>
	 * 
	 */
	@Override
	public void delete(String stationParam, String string) throws Exception {
		dao.delete(stationParam, string);
	}

	/**
	 * 方法简要描述信息.
	 * <p>
	 * 描述: 获取仓库
	 * </p>
	 * <p>
	 * 备注: 详见顺序图
	 * </p>
	 * 
	 */
	@Override
	public List<StorVO> getStorByCondition(StorVO storVO) throws Exception {
		return dao.findAllList("getStorByCondition", storVO);
	}

	/**
	 * 方法简要描述信息.
	 * <p>
	 * 描述: 添加仓库
	 * </p>
	 * <p>
	 * 备注: 详见顺序图
	 * </p>
	 * 
	 */
	@Override
	public void insert(StorVO storVO) throws Exception {
		dao.insert("insertStor", storVO);
	}

	/**
	 * 方法简要描述信息.
	 * <p>
	 * 描述: 获取仓库
	 * </p>
	 * <p>
	 * 备注: 详见顺序图
	 * </p>
	 * 
	 */
	public Stor findByid(String storId) throws Exception {
		List<StorVO> resultList = dao.findList("selectById", storId);
		if (resultList != null && resultList.size() > 0) {
			return resultList.get(0);
		}
		return null;
	}

	@Override
	public StorVO getDefaultStor(String shopId) throws Exception {
	    StorVO stor = dao.findOne("getDefaultStorByShopId",shopId);
		return stor;
	}

	/**
	 * 方法简要描述信息.
	 * <p>
	 * 描述: 修改仓库
	 * </p>
	 * <p>
	 * 备注: 详见顺序图
	 * </p>
	 * 
	 */
	@Override
	public void update(Stor ur) throws Exception {
		dao.update("updateStor", ur);
	}

}
